Java DevOps: Development und Delivery mit Docker und Kubernetes (s2122)
Durchgeführt von ETC
Beschreibung
In diesem praxisorientierten Seminar 'Java DevOps Development und Delivery mit Docker und Kubernetes' tauchst Du tief in die Welt der modernen Softwareentwicklung ein. Der Kurs beginnt mit einer Einführung in Docker und Kubernetes, zwei unverzichtbaren Werkzeugen für die Entwicklung containerisierter Java-JEE-Anwendungen. Du lernst, warum Container-Umgebungen in der heutigen Softwareentwicklung so wichtig sind und welche Vorteile sie im Vergleich zu traditionellen virtuellen Maschinen bieten. Durch die Nutzung von Docker kannst Du Deine Anwendungen in isolierten Containern betreiben, was die Portabilität und Konsistenz über verschiedene Umgebungen hinweg erheblich verbessert. Im Verlauf des Kurses wirst Du die Grundlagen der Erstellung und Verwaltung von Docker-Images erlernen. Du erfährst, wie Du Docker-Images für Deine Java-JEE-Anwendungen erstellst und diese in einem Kubernetes-Cluster betreibst. Dabei wirst Du auch eigene Basisimages erstellen und Multi-Stage-Builds nutzen, um die Größe Deiner Images zu optimieren. Die praktischen Übungen helfen Dir, ein tiefes Verständnis für die Funktionsweise von Docker zu entwickeln und die wichtigsten Kommandos sicher zu beherrschen. Ein weiteres zentrales Thema des Kurses ist die Orchestrierung von Containern mit Kubernetes. Du wirst den grundsätzlichen Aufbau der Plattform kennenlernen und lernen, wie Du YAML-Files zur Beschreibung von Kubernetes-Objekten nutzt. Wir werden die verschiedenen Building Blocks von Kubernetes durchgehen, darunter Pods, Deployments, Services und Volumes. Du wirst auch den Unterschied zwischen Stateful Sets und Jobs verstehen und lernen, wie Du mit Readiness und Liveness Probes die Verfügbarkeit Deiner Anwendungen sicherstellen kannst. Ein wichtiger Bestandteil des Kurses ist die Entwicklung von Build-Pipelines für Continuous Delivery. Du wirst verstehen, was Continuous Integration, Delivery und Deployment bedeuten und wie diese Konzepte zusammenarbeiten. Wir werden verschiedene Tools wie GitLab-CI und Jenkins betrachten, um automatisierte Deployments in einem Kubernetes-Cluster zu realisieren. Du wirst lernen, wie Du GitOps implementierst, um Kubernetes-Manifest-Dateien direkt aus Git zu deployen. Darüber hinaus werden wir auf die Herausforderungen und Lösungen der lokalen Entwicklung eingehen. Du wirst lernen, wie Du Deine Entwicklungsumgebung so einrichtest, dass Du direkt gegen einen Kubernetes-Cluster arbeiten kannst. Tools wie Skaffold, DevSpace und Telepresence werden vorgestellt, um Dir zu helfen, Deine Anwendungen lokal zu testen und zu entwickeln. Am Ende des Seminars wirst Du die Fähigkeiten und das Wissen haben, um Java-JEE-Anwendungen erfolgreich in einer containerisierten Umgebung zu entwickeln, zu betreiben und automatisiert bereitzustellen. Du wirst in der Lage sein, eine realistische Pipeline für Continuous Delivery zu erstellen und die Herausforderungen der lokalen Entwicklung zu meistern.
Tags
#Softwareentwicklung #DevOps #Entwicklung #Java #Agile #Kubernetes #Containerisierung #Container #Docker #CloudTermine
Kurs Details
Dieser Kurs richtet sich an Entwickler und Teamleiter, die Java-JEE-Anwendungen für Container-Umgebungen entwickeln und diese in Docker und Kubernetes betreiben möchten. Er ist ideal für alle, die ihre Kenntnisse in der modernen Softwareentwicklung erweitern und die Prinzipien von DevOps in ihre Arbeit integrieren wollen. Grundlegende Java-Kenntnisse sind erforderlich, während Kenntnisse über Linux und Networking von Vorteil, aber nicht zwingend notwendig sind.
Das Thema dieses Kurses dreht sich um die Entwicklung und Bereitstellung von Java-JEE-Anwendungen in containerisierten Umgebungen mithilfe von Docker und Kubernetes. Docker ermöglicht es, Anwendungen in Containern zu isolieren, was die Portabilität und Konsistenz über verschiedene Umgebungen hinweg verbessert. Kubernetes hingegen ist eine Orchestrierungsplattform, die hilft, Container zu verwalten, zu skalieren und auszuliefern. In Kombination ermöglichen diese Technologien eine effiziente und automatisierte Softwareentwicklung und -bereitstellung, die den Anforderungen moderner DevOps-Praktiken gerecht wird.
- Was sind die Hauptunterschiede zwischen Containern und virtuellen Maschinen?
- Wie erstellst Du ein Docker-Image für eine Java-JEE-Anwendung?
- Was sind Pods und wie funktionieren sie in Kubernetes?
- Erkläre den Zweck von YAML-Files in Kubernetes.
- Was ist Continuous Delivery und wie unterscheidet es sich von Continuous Deployment?
- Welche Tools können für die Implementierung von Continuous Delivery in Kubernetes verwendet werden?
- Was sind die Vorteile von Multi-Stage-Builds in Docker?
- Wie kannst Du die Verfügbarkeit Deiner Anwendung mit Liveness und Readiness Probes sicherstellen?
- Was ist GitOps und wie wird es in Kubernetes angewendet?
- Welche Herausforderungen können bei der lokalen Entwicklung gegen einen Kubernetes-Cluster auftreten?